package cdu.javaendwork.service.Interface.Shopping;

import cdu.javaendwork.model.sqlModel.Order;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

public interface OrderService {
    //------------------杨谷雨同学负责----------------------------
    //这里我们暂时认为Order对象的status==1时表示它是购物车，因此此时date，price，ref都是无用的属性，
    // 而status=1对于每个用户来说这样的order也只有一个
    //                      status==2时表示他是一个订单，但用户确定购买购物车中的商品后我们把status改成2，刷新date，计算price和ref，
    //让此Order变成一个有意义的订单 而下一次用户再次添加购物车时我们就重新创建一个status==1的购物车

    //添加一个order，在创建购物车的时候会用上
    public boolean insert(int userid, int status, Date date, BigDecimal price,String ref);

    //删除一个order，如果用户可以删除订单，那么这个接口可能会有用
    public boolean delete(int id);

    //修改一个order，将order变成订单时需要修改他的状态码已经后面的属性,将会用到
    public boolean update(int id , int userid, int status, Date date, BigDecimal price,String ref);

    //检查该用户的购物车是否存在，在用户创建购物车或者添加商品进入购物车时都会使用,存在返回Order，不存在返回null
    public Order findByUserIdAndStatus(int userid,int status);

    //查看一个订单的详情时或许会用到单查
    public Order findById(int id);

    //分页查询该用户的所有订单
    public List<Order> filterByUserIdLimit(int userid , int pageIndex , int pageSize);

}